/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package org.hl7.v3;

import java.math.BigInteger;

/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>GLISTTS</b></em>'.
 * <!-- end-user-doc -->
 *
 * <p>
 * The following features are supported:
 * <ul>
 *   <li>{@link org.hl7.v3.GLISTTS#getHead <em>Head</em>}</li>
 *   <li>{@link org.hl7.v3.GLISTTS#getIncrement <em>Increment</em>}</li>
 *   <li>{@link org.hl7.v3.GLISTTS#getDenominator <em>Denominator</em>}</li>
 *   <li>{@link org.hl7.v3.GLISTTS#getPeriod <em>Period</em>}</li>
 * </ul>
 * </p>
 *
 * @see org.hl7.v3.V3Package#getGLISTTS()
 * @model extendedMetaData="name='GLIST_TS' kind='elementOnly'"
 * @generated
 */
public interface GLISTTS extends ANY {
	/**
	 * Returns the value of the '<em><b>Head</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * <!-- begin-model-doc -->
	 * 
	 *                      This is the start-value of the generated list. 
	 *                   
	 * <!-- end-model-doc -->
	 * @return the value of the '<em>Head</em>' containment reference.
	 * @see #setHead(TS1)
	 * @see org.hl7.v3.V3Package#getGLISTTS_Head()
	 * @model containment="true" required="true"
	 *        extendedMetaData="kind='element' name='head' namespace='##targetNamespace'"
	 * @generated
	 */
	TS1 getHead();

	/**
	 * Sets the value of the '{@link org.hl7.v3.GLISTTS#getHead <em>Head</em>}' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Head</em>' containment reference.
	 * @see #getHead()
	 * @generated
	 */
	void setHead(TS1 value);

	/**
	 * Returns the value of the '<em><b>Increment</b></em>' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * <!-- begin-model-doc -->
	 * 
	 *                      The difference between one value and its previous
	 *                      different value. For example, to generate the sequence
	 *                      (1; 4; 7; 10; 13; ...) the increment is 3; likewise to
	 *                      generate the sequence (1; 1; 4; 4; 7; 7; 10; 10; 13;
	 *                      13; ...) the increment is also 3.
	 *                   
	 * <!-- end-model-doc -->
	 * @return the value of the '<em>Increment</em>' containment reference.
	 * @see #setIncrement(PQ)
	 * @see org.hl7.v3.V3Package#getGLISTTS_Increment()
	 * @model containment="true" required="true"
	 *        extendedMetaData="kind='element' name='increment' namespace='##targetNamespace'"
	 * @generated
	 */
	PQ getIncrement();

	/**
	 * Sets the value of the '{@link org.hl7.v3.GLISTTS#getIncrement <em>Increment</em>}' containment reference.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Increment</em>' containment reference.
	 * @see #getIncrement()
	 * @generated
	 */
	void setIncrement(PQ value);

	/**
	 * Returns the value of the '<em><b>Denominator</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * <!-- begin-model-doc -->
	 * 
	 *                      The integer by which the index for the sequence is
	 *                      divided, effectively the number of times the sequence
	 *                      generates the same sequence item value before
	 *                      incrementing to the next sequence item value. For
	 *                      example, to generate the sequence (1; 1; 1; 2; 2; 2; 3; 3;
	 *                      3; ...)  the denominator is 3.
	 *                   
	 * <!-- end-model-doc -->
	 * @return the value of the '<em>Denominator</em>' attribute.
	 * @see #setDenominator(BigInteger)
	 * @see org.hl7.v3.V3Package#getGLISTTS_Denominator()
	 * @model dataType="org.hl7.v3.Int"
	 *        extendedMetaData="kind='attribute' name='denominator'"
	 * @generated
	 */
	BigInteger getDenominator();

	/**
	 * Sets the value of the '{@link org.hl7.v3.GLISTTS#getDenominator <em>Denominator</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Denominator</em>' attribute.
	 * @see #getDenominator()
	 * @generated
	 */
	void setDenominator(BigInteger value);

	/**
	 * Returns the value of the '<em><b>Period</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * <!-- begin-model-doc -->
	 * 
	 *                      If non-NULL, specifies that the sequence alternates,
	 *                      i.e., after this many increments, the sequence item
	 *                      values roll over to start from the initial sequence
	 *                      item value. For example, the sequence (1; 2; 3; 1; 2;
	 *                      3; 1; 2; 3; ...) has period 3; also the sequence
	 *                      (1; 1; 2; 2; 3; 3; 1; 1; 2; 2; 3; 3; ...) has period
	 *                      3 too.
	 *                   
	 * <!-- end-model-doc -->
	 * @return the value of the '<em>Period</em>' attribute.
	 * @see #setPeriod(BigInteger)
	 * @see org.hl7.v3.V3Package#getGLISTTS_Period()
	 * @model dataType="org.hl7.v3.Int"
	 *        extendedMetaData="kind='attribute' name='period'"
	 * @generated
	 */
	BigInteger getPeriod();

	/**
	 * Sets the value of the '{@link org.hl7.v3.GLISTTS#getPeriod <em>Period</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Period</em>' attribute.
	 * @see #getPeriod()
	 * @generated
	 */
	void setPeriod(BigInteger value);

} // GLISTTS
